import {
	defineStore
} from 'pinia';
export const useUserStore = defineStore('user', {
	state: () => ({
		token: uni.getStorageSync('token') || null,
		userInfo: uni.getStorageSync('userInfo') ? uni.getStorageSync('userInfo') : null,
	}),
	actions: {
		setToken(newToken) {
			this.token = newToken;
			if (newToken) {
				uni.setStorageSync('token', newToken);
			} else {
				uni.removeStorageSync('token');
			}
		},
		setUserInfo(info) {
			this.userInfo = info;
			if (info) {
				uni.setStorageSync('userInfo', JSON.stringify(info));
			} else {
				uni.removeStorageSync('userInfo');
			}
		},
		logout() {
			this.setToken(null);
			this.setUserInfo(null);
			// 可以在这里添加其他登出逻辑，如通知后端等
			console.log('User logged out, token and info cleared.');
		},
		// // [关键] 验证Token有效性并获取用户信息
		// async verifyAndGetUserInfo() {
		// 	if (!this.token) return Promise.reject("No token");

		// 	try {
		// 		// 假设你有一个封装好的request模块
		// 		const res = await getUserInfo().then(res=>{
		// 			console.log(res)
		// 			if(res.code == 1){
		// 				this.setUserInfo(res.data);
		// 				return Promise.resolve(res.data);
		// 			}else{
		// 				// 其他业务错误也视为验证失败
		// 				                    throw new Error("Verification failed");
		// 			}
		// 		}).catch(error=>{
		// 			console.log(error)
		// 			// API请求失败或返回401等，说明token无效
		// 			console.error("Token verification failed, logging out.", error);
		// 			this.logout(); // 调用logout，清除一切并跳转
		// 		})
				
		// 	} catch (error) {
		// 		// API请求失败或返回401等，说明token无效
		// 		console.error("Token verification failed, logging out.", error);
		// 		this.logout(); // 调用logout，清除一切并跳转
		// 	}
		// }
	},
});